在上一篇技術教學文章中,我們已經介紹了如何建立Django後端應用,並使用Docker Compose將項目打包。本篇文章將會深入介紹如何在Django設定檔中整合MariaDB和Redis,同時對這兩種技術進行說明,以幫助讀者更好地理解它們的用途和優勢。
在Django項目中,預設的數據庫是SQLite3,它是一個輕量級的數據庫,適合小型應用和開發階段使用。SQLite3的最大優點是配置簡單,不需要額外的數據庫服務器。然而,當應用需要處理更大的數據量或需要高度的並發支持時,SQLite3可能就顯得力不從心了。
這時候,MariaDB成為了一個優秀的替代方案。作為MySQL的一個分支,MariaDB提供了完整的數據庫服務功能,支持更大的數據量和高並發訪問,非常適合中到大型的應用。它還兼容MySQL的大多數功能,讓遷移更加順暢。
引入必要的模塊並載入環境變量:
import os
from dotenv import load_dotenv
load_dotenv()
更新Django的數據庫設定,切換至MariaDB:
# MariaDB
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.getenv('MYSQL_DATABASE'),
'USER': os.getenv('MYSQL_USER'),
'PASSWORD': os.getenv('MYSQL_PASSWORD'),
'HOST': 'mariadb',
'PORT': '3306',
}
}
關於MariaDB的操作和使用,我們將留到後面一點的章節介紹!
Redis是一個開源的高性能鍵值對數據庫。它通常用作數據庫、緩存和消息代理。Redis支持多種類型的數據結構如字串、列表、集合、散列等。由於其基於內存的存儲機制,Redis能提供極高的讀寫速度,適合需要快速響應的應用場景,如實時應用、大規模網站的數據緩存等。
將Redis配置添加至Django的設置中,這樣可以在Django中直接使用Redis作為緩存:
# Redis
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.redis.RedisCache",
"LOCATION": "redis://redis:6379",
"TIMEOUT": 300,
}
}
啟動包含Redis的服務:
docker-compose -f docker-compose-local.yml up --build -d
docker exec -it backend-redis redis-cli
SET mykey "Hello, Redis!"
GET mykey
from django.core.cache import cache
cache.set('my_key', 'Hello, Django Redis Cache!', 30)
print(cache.get('my_key'))
通過本篇文章的學習,您不僅了解了如何在Django項目中整合MariaDB和Redis,還對這兩種技術的特點和應用場景有了更深的認識。在下一篇文章中,我們將進一步探索如何使用JWT驗證和使用者的管理等